CM3D2 Converter.misc_INFO_MT_add

 1# 「3Dビュー」エリア → 追加(Shift+A) → CM3D2
 2import os
 3import bpy
 4from . import common
 5from . import compat
 6
 7
 8# メニュー等に項目追加
 9def menu_func(self, context):
10    self.layout.separator()
11    self.layout.menu('MISC_INFO_MT_add_cm3d2', icon_value=common.kiss_icon())
12
13
14# サブメニュー
15@compat.BlRegister()
16class misc_INFO_MT_add_cm3d2(bpy.types.Menu):
17    bl_idname = 'MISC_INFO_MT_add_cm3d2'
18    bl_label = "CM3D2"
19
20    def draw(self, context):
21        self.layout.operator('wm.append_cm3d2_figure', text="body001", icon_value=common.kiss_icon()).object_name = "body001.body"
22        self.layout.separator()
23        self.layout.operator('wm.append_cm3d2_figure', text="乳袋防止素体", icon=compat.icon('PIVOT_INDIVIDUAL')).object_name = "乳袋防止素体"
24        self.layout.separator()
25        self.layout.operator('wm.append_cm3d2_figure', text="Tスタンス素体", icon='MOD_ARMATURE').object_name = "Tスタンス素体"
26        self.layout.operator('wm.append_cm3d2_figure', text="Tスタンス素体 足のみ", icon='SOUND').object_name = "Tスタンス素体 足のみ"
27        self.layout.operator('wm.append_cm3d2_figure', text="Tスタンス素体 手のみ", icon='OUTLINER_DATA_ARMATURE').object_name = "Tスタンス素体 手のみ"
28        self.layout.separator()
29        self.layout.operator('wm.append_cm3d2_figure', text="anm出力用リグ", icon='OUTLINER_OB_ARMATURE').object_name = "anm出力用リグ・身体メッシュ"
30        self.layout.operator('wm.append_cm3d2_figure', text="anm出力用リグ(男)", icon='ARMATURE_DATA').object_name = "anm出力用リグ(男)・身体メッシュ"
31
32
33@compat.BlRegister()
34class CNV_OT_append_cm3d2_figure(bpy.types.Operator):
35    bl_idname = 'wm.append_cm3d2_figure'
36    bl_label = "CM3D2用の素体をインポート"
37    bl_description = "CM3D2関係の素体を現在のシーンにインポートします"
38    bl_options = {'REGISTER', 'UNDO'}
39
40    object_name = bpy.props.StringProperty(name="素体名")
41
42    def execute(self, context):
43        if bpy.ops.object.mode_set.poll():
44            bpy.ops.object.mode_set(mode='OBJECT')
45        if bpy.ops.object.select_all.poll():
46            bpy.ops.object.select_all(action='DESELECT')
47
48        blend_path = os.path.join(os.path.dirname(__file__), "append_data.blend")
49        with context.blend_data.libraries.load(blend_path) as (data_from, data_to):
50            data_to.objects = [self.object_name]
51
52        ob = data_to.objects[0]
53        compat.link(context.scene, ob)
54        compat.set_active(context, ob)
55        compat.set_select(ob, True)
56
57        for mod in ob.modifiers:
58            if mod.type == 'ARMATURE':
59                compat.link(context.scene, mod.object)
60                compat.set_select(mod.object, True)
61
62        return {'FINISHED'}
@compat.BlRegister()
class misc_INFO_MT_add_cm3d2(bpy_types.Menu):
16@compat.BlRegister()
17class misc_INFO_MT_add_cm3d2(bpy.types.Menu):
18    bl_idname = 'MISC_INFO_MT_add_cm3d2'
19    bl_label = "CM3D2"
20
21    def draw(self, context):
22        self.layout.operator('wm.append_cm3d2_figure', text="body001", icon_value=common.kiss_icon()).object_name = "body001.body"
23        self.layout.separator()
24        self.layout.operator('wm.append_cm3d2_figure', text="乳袋防止素体", icon=compat.icon('PIVOT_INDIVIDUAL')).object_name = "乳袋防止素体"
25        self.layout.separator()
26        self.layout.operator('wm.append_cm3d2_figure', text="Tスタンス素体", icon='MOD_ARMATURE').object_name = "Tスタンス素体"
27        self.layout.operator('wm.append_cm3d2_figure', text="Tスタンス素体 足のみ", icon='SOUND').object_name = "Tスタンス素体 足のみ"
28        self.layout.operator('wm.append_cm3d2_figure', text="Tスタンス素体 手のみ", icon='OUTLINER_DATA_ARMATURE').object_name = "Tスタンス素体 手のみ"
29        self.layout.separator()
30        self.layout.operator('wm.append_cm3d2_figure', text="anm出力用リグ", icon='OUTLINER_OB_ARMATURE').object_name = "anm出力用リグ・身体メッシュ"
31        self.layout.operator('wm.append_cm3d2_figure', text="anm出力用リグ(男)", icon='ARMATURE_DATA').object_name = "anm出力用リグ(男)・身体メッシュ"
bl_idname = 'MISC_INFO_MT_add_cm3d2'
bl_label = 'CM3D2'
def draw(self, context):
21    def draw(self, context):
22        self.layout.operator('wm.append_cm3d2_figure', text="body001", icon_value=common.kiss_icon()).object_name = "body001.body"
23        self.layout.separator()
24        self.layout.operator('wm.append_cm3d2_figure', text="乳袋防止素体", icon=compat.icon('PIVOT_INDIVIDUAL')).object_name = "乳袋防止素体"
25        self.layout.separator()
26        self.layout.operator('wm.append_cm3d2_figure', text="Tスタンス素体", icon='MOD_ARMATURE').object_name = "Tスタンス素体"
27        self.layout.operator('wm.append_cm3d2_figure', text="Tスタンス素体 足のみ", icon='SOUND').object_name = "Tスタンス素体 足のみ"
28        self.layout.operator('wm.append_cm3d2_figure', text="Tスタンス素体 手のみ", icon='OUTLINER_DATA_ARMATURE').object_name = "Tスタンス素体 手のみ"
29        self.layout.separator()
30        self.layout.operator('wm.append_cm3d2_figure', text="anm出力用リグ", icon='OUTLINER_OB_ARMATURE').object_name = "anm出力用リグ・身体メッシュ"
31        self.layout.operator('wm.append_cm3d2_figure', text="anm出力用リグ(男)", icon='ARMATURE_DATA').object_name = "anm出力用リグ(男)・身体メッシュ"
bl_rna = <bpy_struct, Struct("MISC_INFO_MT_add_cm3d2")>
Inherited Members
bpy_types.Menu
path_menu
draw_preset
draw_collapsible
bpy_types._GenericUI
is_extended
append
prepend
remove
builtins.bpy_struct
keys
values
items
get
pop
as_pointer
keyframe_insert
keyframe_delete
driver_add
driver_remove
is_property_set
property_unset
is_property_hidden
is_property_readonly
is_property_overridable_library
property_overridable_library_set
path_resolve
path_from_id
type_recast
bl_rna_get_subclass_py
bl_rna_get_subclass
id_properties_ensure
id_properties_clear
id_properties_ui
id_data
@compat.BlRegister()
class CNV_OT_append_cm3d2_figure(bpy_types.Operator):
34@compat.BlRegister()
35class CNV_OT_append_cm3d2_figure(bpy.types.Operator):
36    bl_idname = 'wm.append_cm3d2_figure'
37    bl_label = "CM3D2用の素体をインポート"
38    bl_description = "CM3D2関係の素体を現在のシーンにインポートします"
39    bl_options = {'REGISTER', 'UNDO'}
40
41    object_name = bpy.props.StringProperty(name="素体名")
42
43    def execute(self, context):
44        if bpy.ops.object.mode_set.poll():
45            bpy.ops.object.mode_set(mode='OBJECT')
46        if bpy.ops.object.select_all.poll():
47            bpy.ops.object.select_all(action='DESELECT')
48
49        blend_path = os.path.join(os.path.dirname(__file__), "append_data.blend")
50        with context.blend_data.libraries.load(blend_path) as (data_from, data_to):
51            data_to.objects = [self.object_name]
52
53        ob = data_to.objects[0]
54        compat.link(context.scene, ob)
55        compat.set_active(context, ob)
56        compat.set_select(ob, True)
57
58        for mod in ob.modifiers:
59            if mod.type == 'ARMATURE':
60                compat.link(context.scene, mod.object)
61                compat.set_select(mod.object, True)
62
63        return {'FINISHED'}
bl_idname = 'wm.append_cm3d2_figure'
bl_label = 'CM3D2用の素体をインポート'
bl_description = 'CM3D2関係の素体を現在のシーンにインポートします'
bl_options = {'REGISTER', 'UNDO'}
object_name: <_PropertyDeferred, <built-in function StringProperty>, {'name': '素体名', 'attr': 'object_name'}> = <_PropertyDeferred, <built-in function StringProperty>, {'name': '素体名', 'attr': 'object_name'}>
def execute(self, context):
43    def execute(self, context):
44        if bpy.ops.object.mode_set.poll():
45            bpy.ops.object.mode_set(mode='OBJECT')
46        if bpy.ops.object.select_all.poll():
47            bpy.ops.object.select_all(action='DESELECT')
48
49        blend_path = os.path.join(os.path.dirname(__file__), "append_data.blend")
50        with context.blend_data.libraries.load(blend_path) as (data_from, data_to):
51            data_to.objects = [self.object_name]
52
53        ob = data_to.objects[0]
54        compat.link(context.scene, ob)
55        compat.set_active(context, ob)
56        compat.set_select(ob, True)
57
58        for mod in ob.modifiers:
59            if mod.type == 'ARMATURE':
60                compat.link(context.scene, mod.object)
61                compat.set_select(mod.object, True)
62
63        return {'FINISHED'}
bl_rna = <bpy_struct, Struct("WM_OT_append_cm3d2_figure")>
Inherited Members
bpy_types.Operator
as_keywords
poll_message_set
builtins.bpy_struct
keys
values
items
get
pop
as_pointer
keyframe_insert
keyframe_delete
driver_add
driver_remove
is_property_set
property_unset
is_property_hidden
is_property_readonly
is_property_overridable_library
property_overridable_library_set
path_resolve
path_from_id
type_recast
bl_rna_get_subclass_py
bl_rna_get_subclass
id_properties_ensure
id_properties_clear
id_properties_ui
id_data